//引入模块
const express = require('express')
//path模块是用来拼接路径的
const path = require('path')
const app = express()
// express自带的获取body的中间件，form格式与json格式
app.use(express.urlencoded({extended:false}))
app.use(express.json())
//手写body中间件
// app.use((request,response,next)=>{
//     let dataStr=''
//     request.on('data',(chunk)=>{
//         dataStr+=chunk.toString()
//     })
//     request.on('end',(chunk)=>{
//         // 写法一，切割遍历结构赋值
//         // const o={}
//         // dataStr.split('&').forEach(item=>{
//         //     const [key,value]=item.split('=')
//         //     o[key]=value
//         // })
//         // console.log(o,'请求行')
//         // 写法二 redux累加
//         const data=dataStr.split('&').reduce((prev,current)=>{
//             const [key,value]=current.split('=')
//             prev[key]=value
//             return prev
//         },{})
//         request.body=data
//         next()
//     })
// })
//post请求

app.post('/adduser', (request, response) => {
    const { name, age, sex } = request.body
    console.log(request.body);
    if (!name || !age || !sex) {
        return response.send({
            code: 10001,
            mes: "添加失败",
            data: null
        })
    }
    response.send({
        code: 10000,
        mes: "添加成功",
        data: null
    })
})

//get请求
//请求查询字符串
app.get('/user', (request, response) => {
    // 用express的新方法获取查询字符串,并对象解构
    const { userID } = request.query
    //此时userID便是userID属性的值
    if (userID !== '001') {
        //代码的写法一般都是优先处理失败的,代码从右往执行,直接return终止错误代码继续执行
        return response.send({
            code: 000,
            msg: '查询信息',
            data: null
        })
    }
    // 执行成功往下执行,响应正确的数据
    response.send({
        code: 100,
        msg: '查询成功',
        data: {
            name: '晓月',
            age: 24,
            sex: '男'
        }
    })
})
// 请求路径名
app.get('/user/:userID', (request, response) => {
    //路由参数用request.params获取
    const { userID } = request.params
    console.log(userID);
    if (userID !== '001') {
        return response.send({
            code: 000,
            msg: '查询信息',
            data: null
        })
    }
    response.send({
        code: 100,
        msg: '查询成功',
        data: {
            name: '晓月',
            age: 24,
            sex: '男'
        }
    })
})

app.get('/1', (require, response) => {
    // 使用path.resolve拼接路径
    let filePath = path.resolve(__dirname, 'axios.html')
    response.sendFile(filePath)
})
app.listen('9000', () => {
    console.log('服务器部署成功 地址为http://127.0.0.1:9000');
})